// 断言 : 明确告诉电脑不用数据类型的检查和解构,类型断言不是类型转换，而是类型选择
// 将一个联合类型的变量指定为一个更加具体的类型.当 TypeScript 不确定一个联合类型的变量到底是哪个类型的时候，我们只能访问此联合类型的所有类型里共有的属性或方法
//  个人理解: 当出现多种情况的类型的情况下,需要判断,但是由于类型检查会导致代码错误,所以通过断言选择value的类型来判断,建议使用as 而不是尖括号,因为jsx使用的as断言
function func(val: string | number): number {
  if ((val as string).length) {
    return (val as string).length
  } else {
    return val.toString().length
  }
}

console.log(func(555));
